The Session Initiation Protocol (SIP) is a protocol for creating, modifying, and terminating computer network-based communication sessions, such as for an Internet-based telephone call between two or more participants. Since its introduction numerous enhancements to SIP have been proposed, including the SIP Instant Messaging and Presence Leveraging Extensions (SIMPLE) framework in which one or more network entities, such as computer users, create subscriptions on a server, known as a “presence” server, to receive presence information regarding another network entity, referred to as a “presentity.” When a change in the presentity's presence information is detected, such as when the presentity “publishes” such a change to the presence server, SIP is used to send a notification to the subscribers regarding the change.
Further enhancements to SIP, such as those described in RFCs 3857 and 3858 of the Internet Engineering Task Force, provide a mechanism for subscribing to information regarding subscribers to a presentity's presence information. In this context, subscribers to a presentity's presence information are referred to as “watchers,” the information regarding these subscribers is referred to as “watcher information,” and the subscriber to watcher information is referred to as a “watcher information subscriber.” Both presence information and watcher information are preferably maintained in the Extensible Markup Language (XML). The watcher information subscriber may use this information, for example, to detect unauthorized subscriptions for the presentity's presence information.
Other enhancements to SIP, such as those described in RFCs 3265 and 4662, provide a mechanism for enabling a watcher to subscribe to receive presence information for a group of presentities, whereby the watcher sends a single subscription request to a resource list server with respect to a resource list that includes multiple presentities. Then, for each presentity listed in the resource list, the resource list server sends a separate subscription request on behalf of the watcher to a presence server that will provide presence information for that presentity. For each watcher subscription that is made to the same resource list, the resource list server generates separate presence server subscriptions for each presentity on the list. Similarly, for watcher subscriptions to different resource lists that include the same presentity, the resource list server generates multiple presence server subscriptions for the same presentity. The management of each subscription necessarily requires computer processing, storage, and networking resources.
In the prior art a system is provided for maintaining presence information of public group members, which includes a presence server and a group list management server, and further includes a presence group server connected to the presence server and the group list management server and adapted to obtain information of the public group members from the group list management server according to a received subscription request for the presence information of the public group members, subscribe for the presence information of the public group members from the presence server, and save the presence information of the public group members. A presence group server and a method for maintaining presence information of public group members are also provided. In this system, unfortunately, multiple requests for the presence information of the public group members result in multiple subscriptions being created for each member of the group.
The prior art also describes using routing to distribute SIP requests among clusters, where a number of different presence server clusters are deployed, each cluster handling incoming SIP requests for a particular subset of users. In this scenario a separate resource list server component is deployed to handle all subscriptions on presence lists. Unfortunately, here too are multiple subscriptions generated for multiple requests for presence information regarding the same presentity.
The prior art also describes various embodiments for providing a list-based subscription service, where one group of embodiments involves receiving a subscription to a list to which multiple list members are associated and then providing a notification when an aggregated state of the list satisfies a condition. The aggregated state of the list is based on at least a portion of the state information that pertains to each of the list members. Another group of embodiments involves sending a subscription to a list to which multiple list members are associated and then receiving a notification when an aggregated state of the list satisfies a condition. Unfortunately, as before, multiple subscriptions are generated for multiple requests for presence information regarding the same presentity.
In another prior art system, a presence server sets a group identifier as an identifier which is used to collectively look up a group of multiple pieces of presence information provided by presence information providers who have agreed to a use policy, aggregates and stores the presence information under the group identifier, and delivers the presence information requested to the group identifier. Each presentity provides the presence server with its presence information targeted to the group identifier. Each watcher requests the group identifier for the presence information provided by the presentities, and receives the presence information delivered from the presence server. However, multiple requests for presence information by group identifier still results in multiple subscriptions being created per presentity.
A prior art method for reducing memory usage for communications between servers in a communication network utilizing SIP does so by controlling establishment of SIP-Tunnels. A single SIP-Tunnel for a certain event package is utilized for multiple subscriptions between one instance of a requesting server such as a resource list server, and one instance of an application server such as a presence server. The SIP-Tunnel is then utilized to send all SIP NOTIFY messages between these two entities to reduce memory usage at both ends by removing the overhead created by SIP. However, this method is silent with regard to reducing or eliminating multiple subscriptions created per presentity as is described hereinbelow.
In another prior art system a presence server acts as a special SIP application server to manage service- and user-related presence information, and employs a resource list server to allow single presence subscriptions on a group of entities that results in an aggregated notification with the requested data. Unfortunately, here too are multiple subscriptions generated for multiple requests for presence information regarding the same presentity.
Prior art mechanisms that do describe reducing the number of subscriptions between a resource list server and a presence server do not describe how to handle subscriptions for watcher information.
Systems, methods, and/or computer program products for reducing the number of presence server subscriptions generated by a resource list server for watcher subscriptions to resource lists, as well as handle subscriptions for watcher information, would therefore be advantageous.